﻿using System;
using System.Windows.Forms;
using DirectorioExalmarEntidades;
using DirectorioExalmarLogicaNegocio;
using GlobalesUtilitarios;

namespace appDirectorioExalmar
{
    public partial class frmConsulta : Form
    {
        public frmConsulta()
        {
            InitializeComponent();
        }

        private void frmConsulta_Load(object sender, EventArgs e)
        {
            dgvDirectorio.AutoGenerateColumns = false;
            CargarCargos();
            CargarAreas();
            CargarSedes();
            CargarEmpleados();
        }

        private void CargarEmpleados()
        {
            dgvDirectorio.DataSource = new Empleado().Listar(null);
            Generales.CellFormat(dgvDirectorio);
        }

        private void CargarSedes()
        {
            cboSede.DataSource = new Sede().Listar(null);
            cboSede.ValueMember = "IdSede";
            cboSede.DisplayMember = "Descripcion";
            cboSede.SelectedIndex = -1;
        }

        private void CargarAreas()
        {
            cboArea.DataSource = new Area().Listar(null);
            cboArea.ValueMember = "IdArea";
            cboArea.DisplayMember = "Descripcion";
            cboArea.SelectedIndex = -1;
        }

        private void CargarCargos()
        {
            cboCargo.DataSource = new Cargo().Listar(null);
            cboCargo.ValueMember = "IdCargo";
            cboCargo.DisplayMember = "Descripcion";
            cboCargo.SelectedIndex = -1;
        }

        private void btnConsultar_Click(object sender, EventArgs e)
        {
            var sNombres = String.IsNullOrEmpty(txtNombre.Text) ? null : txtNombre.Text.Trim();
            var sApellidoPaterno = String.IsNullOrEmpty(txtApellidoPaterno.Text) ? null : txtApellidoPaterno.Text.Trim();
            var sApellidoMaterno = String.IsNullOrEmpty(txtApellidoMaterno.Text) ? null : txtApellidoMaterno.Text.Trim();
            var nCargo = (int?) (cboCargo.SelectedIndex == -1 ? null : cboCargo.SelectedValue);
            var nArea = (int?) (cboArea.SelectedIndex == -1 ? null : cboArea.SelectedValue);
            var nSede = (int?) (cboSede.SelectedIndex == -1 ? null : cboSede.SelectedValue);

            if (sNombres == null && sApellidoPaterno == null && sApellidoMaterno == null && !nCargo.HasValue &&
                !nArea.HasValue && !nSede.HasValue)
            {
                CargarEmpleados();
            }
            else
            {
                var oEmpleado = new EmpleadoInfo(null, sNombres, sApellidoPaterno, sApellidoMaterno, nCargo, nArea, nSede);
                dgvDirectorio.DataSource = new Empleado().Listar(oEmpleado);
                Generales.CellFormat(dgvDirectorio);

                cboCargo.SelectedIndex = -1;
                cboArea.SelectedIndex = -1;
                cboSede.SelectedIndex = -1;
            }
        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

    }
}
